# Copyright (C) 2001-2015  The Bochs Project
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA

# Makefile for the fpu component of bochs

.SUFFIXES: .cc

srcdir = .

top_builddir    = ..
top_srcdir      = ../..

SHELL = /bin/sh



CC       = gcc
CFLAGS   = -g -O2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES   -I/usr/include/SDL2 -D_REENTRANT
CXX      = g++
CXXFLAGS = -g -O2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES   -I/usr/include/SDL2 -D_REENTRANT

#CFLAGS  = -Wall -Wstrict-prototypes -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -mpreferred-stack-boundary=2 -DCPU=686 -march=i686

LDFLAGS    = 
LIBS       = 
RANLIB     = ranlib

L_TARGET = libfpu.a


BX_INCDIRS = -I.. -I../.. -I$(srcdir)/.. -I$(srcdir)/../.. -I../../instrument/stubs -I$(srcdir)/../../instrument/stubs

OBJS = ferr.o fpu.o fpu_arith.o fpu_compare.o fpu_const.o fpu_cmov.o \
               fpu_load_store.o fpu_misc.o fpu_trans.o \
               fprem.o fsincos.o f2xm1.o fyl2x.o fpatan.o \
               softfloat.o softfloatx80.o softfloat16.o softfloat-muladd.o \
               softfloat-specialize.o softfloat-round-pack.o poly.o

all: libfpu.a

.cc.o:
	$(CXX) -c $(BX_INCDIRS) $(CXXFLAGS) $< -o $@

.c.o:
	$(CC) -c $(CFLAGS) $(BX_INCDIRS) $< -o $@


libfpu.a: $(OBJS)
	rm -f  libfpu.a
	ar rv $@ $(OBJS)
	$(RANLIB) libfpu.a

clean:
	rm -f  *.o
	rm -f  *.a

dist-clean: clean
	rm -f  Makefile

###########################################
# dependencies generated by
#  gcc -MM -I.. -I../.. -I../../instrument/stubs *.cc | sed 's/\.cc/.cc/g'
###########################################
f2xm1.o: f2xm1.cc softfloatx80.h softfloat.h ../../config.h \
 softfloat-specialize.h softfloat-macros.h softfloat-round-pack.h
ferr.o: ferr.cc ../../bochs.h ../../config.h ../../osdep.h \
 ../../bx_debug/debug.h ../../config.h ../../osdep.h \
 ../../cpu/decoder/decoder.h ../../gui/paramtree.h ../../logio.h \
 ../../instrument/stubs/instrument.h ../../cpu/cpu.h \
 ../../cpu/decoder/decoder.h ../../cpu/i387.h ../../cpu/fpu/softfloat.h \
 ../../cpu/fpu/tag_w.h ../../cpu/fpu/status_w.h ../../cpu/fpu/control_w.h \
 ../../cpu/crregs.h ../../cpu/descriptor.h ../../cpu/decoder/instr.h \
 ../../cpu/lazy_flags.h ../../cpu/tlb.h ../../cpu/icache.h \
 ../../cpu/apic.h ../../cpu/xmm.h ../../cpu/vmx.h ../../cpu/svm.h \
 ../../cpu/cpuid.h ../../cpu/stack.h ../../cpu/access.h \
 softfloat-specialize.h softfloat.h
fpatan.o: fpatan.cc softfloatx80.h softfloat.h ../../config.h \
 softfloat-specialize.h softfloat-macros.h softfloat-round-pack.h \
 fpu_constant.h
fprem.o: fprem.cc softfloatx80.h softfloat.h ../../config.h \
 softfloat-specialize.h softfloat-round-pack.h softfloat-macros.h
fpu.o: fpu.cc ../../bochs.h ../../config.h ../../osdep.h \
 ../../bx_debug/debug.h ../../config.h ../../osdep.h \
 ../../cpu/decoder/decoder.h ../../gui/paramtree.h ../../logio.h \
 ../../instrument/stubs/instrument.h ../../cpu/cpu.h \
 ../../cpu/decoder/decoder.h ../../cpu/i387.h ../../cpu/fpu/softfloat.h \
 ../../cpu/fpu/tag_w.h ../../cpu/fpu/status_w.h ../../cpu/fpu/control_w.h \
 ../../cpu/crregs.h ../../cpu/descriptor.h ../../cpu/decoder/instr.h \
 ../../cpu/lazy_flags.h ../../cpu/tlb.h ../../cpu/icache.h \
 ../../cpu/apic.h ../../cpu/xmm.h ../../cpu/vmx.h ../../cpu/svm.h \
 ../../cpu/cpuid.h ../../cpu/stack.h ../../cpu/access.h \
 ../../iodev/iodev.h ../../plugin.h ../../extplugin.h ../../param_names.h \
 ../../pc_system.h ../../memory/memory-bochs.h ../../gui/siminterface.h \
 ../../gui/paramtree.h ../../gui/gui.h softfloatx80.h softfloat.h \
 softfloat-specialize.h
fpu_arith.o: fpu_arith.cc ../../bochs.h ../../config.h ../../osdep.h \
 ../../bx_debug/debug.h ../../config.h ../../osdep.h \
 ../../cpu/decoder/decoder.h ../../gui/paramtree.h ../../logio.h \
 ../../instrument/stubs/instrument.h ../../cpu/cpu.h \
 ../../cpu/decoder/decoder.h ../../cpu/i387.h ../../cpu/fpu/softfloat.h \
 ../../cpu/fpu/tag_w.h ../../cpu/fpu/status_w.h ../../cpu/fpu/control_w.h \
 ../../cpu/crregs.h ../../cpu/descriptor.h ../../cpu/decoder/instr.h \
 ../../cpu/lazy_flags.h ../../cpu/tlb.h ../../cpu/icache.h \
 ../../cpu/apic.h ../../cpu/xmm.h ../../cpu/vmx.h ../../cpu/svm.h \
 ../../cpu/cpuid.h ../../cpu/stack.h ../../cpu/access.h softfloatx80.h \
 softfloat.h softfloat-specialize.h
fpu_cmov.o: fpu_cmov.cc ../../bochs.h ../../config.h ../../osdep.h \
 ../../bx_debug/debug.h ../../config.h ../../osdep.h \
 ../../cpu/decoder/decoder.h ../../gui/paramtree.h ../../logio.h \
 ../../instrument/stubs/instrument.h ../../cpu/cpu.h \
 ../../cpu/decoder/decoder.h ../../cpu/i387.h ../../cpu/fpu/softfloat.h \
 ../../cpu/fpu/tag_w.h ../../cpu/fpu/status_w.h ../../cpu/fpu/control_w.h \
 ../../cpu/crregs.h ../../cpu/descriptor.h ../../cpu/decoder/instr.h \
 ../../cpu/lazy_flags.h ../../cpu/tlb.h ../../cpu/icache.h \
 ../../cpu/apic.h ../../cpu/xmm.h ../../cpu/vmx.h ../../cpu/svm.h \
 ../../cpu/cpuid.h ../../cpu/stack.h ../../cpu/access.h
fpu_compare.o: fpu_compare.cc ../../bochs.h ../../config.h ../../osdep.h \
 ../../bx_debug/debug.h ../../config.h ../../osdep.h \
 ../../cpu/decoder/decoder.h ../../gui/paramtree.h ../../logio.h \
 ../../instrument/stubs/instrument.h ../../cpu/cpu.h \
 ../../cpu/decoder/decoder.h ../../cpu/i387.h ../../cpu/fpu/softfloat.h \
 ../../cpu/fpu/tag_w.h ../../cpu/fpu/status_w.h ../../cpu/fpu/control_w.h \
 ../../cpu/crregs.h ../../cpu/descriptor.h ../../cpu/decoder/instr.h \
 ../../cpu/lazy_flags.h ../../cpu/tlb.h ../../cpu/icache.h \
 ../../cpu/apic.h ../../cpu/xmm.h ../../cpu/vmx.h ../../cpu/svm.h \
 ../../cpu/cpuid.h ../../cpu/stack.h ../../cpu/access.h \
 ../../cpu/decoder/ia_opcodes.h ../../cpu/decoder/ia_opcodes.def \
 softfloatx80.h softfloat.h softfloat-specialize.h
fpu_const.o: fpu_const.cc ../../bochs.h ../../config.h ../../osdep.h \
 ../../bx_debug/debug.h ../../config.h ../../osdep.h \
 ../../cpu/decoder/decoder.h ../../gui/paramtree.h ../../logio.h \
 ../../instrument/stubs/instrument.h ../../cpu/cpu.h \
 ../../cpu/decoder/decoder.h ../../cpu/i387.h ../../cpu/fpu/softfloat.h \
 ../../cpu/fpu/tag_w.h ../../cpu/fpu/status_w.h ../../cpu/fpu/control_w.h \
 ../../cpu/crregs.h ../../cpu/descriptor.h ../../cpu/decoder/instr.h \
 ../../cpu/lazy_flags.h ../../cpu/tlb.h ../../cpu/icache.h \
 ../../cpu/apic.h ../../cpu/xmm.h ../../cpu/vmx.h ../../cpu/svm.h \
 ../../cpu/cpuid.h ../../cpu/stack.h ../../cpu/access.h softfloatx80.h \
 softfloat.h softfloat-specialize.h
fpu_load_store.o: fpu_load_store.cc ../../bochs.h ../../config.h \
 ../../osdep.h ../../bx_debug/debug.h ../../config.h ../../osdep.h \
 ../../cpu/decoder/decoder.h ../../gui/paramtree.h ../../logio.h \
 ../../instrument/stubs/instrument.h ../../cpu/cpu.h \
 ../../cpu/decoder/decoder.h ../../cpu/i387.h ../../cpu/fpu/softfloat.h \
 ../../cpu/fpu/tag_w.h ../../cpu/fpu/status_w.h ../../cpu/fpu/control_w.h \
 ../../cpu/crregs.h ../../cpu/descriptor.h ../../cpu/decoder/instr.h \
 ../../cpu/lazy_flags.h ../../cpu/tlb.h ../../cpu/icache.h \
 ../../cpu/apic.h ../../cpu/xmm.h ../../cpu/vmx.h ../../cpu/svm.h \
 ../../cpu/cpuid.h ../../cpu/stack.h ../../cpu/access.h \
 ../../cpu/decoder/ia_opcodes.h ../../cpu/decoder/ia_opcodes.def \
 softfloatx80.h softfloat.h softfloat-specialize.h
fpu_misc.o: fpu_misc.cc ../../bochs.h ../../config.h ../../osdep.h \
 ../../bx_debug/debug.h ../../config.h ../../osdep.h \
 ../../cpu/decoder/decoder.h ../../gui/paramtree.h ../../logio.h \
 ../../instrument/stubs/instrument.h ../../cpu/cpu.h \
 ../../cpu/decoder/decoder.h ../../cpu/i387.h ../../cpu/fpu/softfloat.h \
 ../../cpu/fpu/tag_w.h ../../cpu/fpu/status_w.h ../../cpu/fpu/control_w.h \
 ../../cpu/crregs.h ../../cpu/descriptor.h ../../cpu/decoder/instr.h \
 ../../cpu/lazy_flags.h ../../cpu/tlb.h ../../cpu/icache.h \
 ../../cpu/apic.h ../../cpu/xmm.h ../../cpu/vmx.h ../../cpu/svm.h \
 ../../cpu/cpuid.h ../../cpu/stack.h ../../cpu/access.h softfloatx80.h \
 softfloat.h softfloat-specialize.h
fpu_trans.o: fpu_trans.cc ../../bochs.h ../../config.h ../../osdep.h \
 ../../bx_debug/debug.h ../../config.h ../../osdep.h \
 ../../cpu/decoder/decoder.h ../../gui/paramtree.h ../../logio.h \
 ../../instrument/stubs/instrument.h ../../cpu/cpu.h \
 ../../cpu/decoder/decoder.h ../../cpu/i387.h ../../cpu/fpu/softfloat.h \
 ../../cpu/fpu/tag_w.h ../../cpu/fpu/status_w.h ../../cpu/fpu/control_w.h \
 ../../cpu/crregs.h ../../cpu/descriptor.h ../../cpu/decoder/instr.h \
 ../../cpu/lazy_flags.h ../../cpu/tlb.h ../../cpu/icache.h \
 ../../cpu/apic.h ../../cpu/xmm.h ../../cpu/vmx.h ../../cpu/svm.h \
 ../../cpu/cpuid.h ../../cpu/stack.h ../../cpu/access.h softfloatx80.h \
 softfloat.h softfloat-specialize.h
fsincos.o: fsincos.cc softfloatx80.h softfloat.h ../../config.h \
 softfloat-specialize.h softfloat-macros.h softfloat-round-pack.h \
 fpu_constant.h
fyl2x.o: fyl2x.cc softfloatx80.h softfloat.h ../../config.h \
 softfloat-specialize.h softfloat-macros.h softfloat-round-pack.h \
 fpu_constant.h
poly.o: poly.cc softfloat.h ../../config.h
softfloat-muladd.o: softfloat-muladd.cc softfloat.h ../../config.h \
 softfloat-round-pack.h softfloat-macros.h softfloat-specialize.h
softfloat-round-pack.o: softfloat-round-pack.cc softfloat.h \
 ../../config.h softfloat-round-pack.h softfloat-macros.h \
 softfloat-specialize.h
softfloat-specialize.o: softfloat-specialize.cc softfloat.h \
 ../../config.h softfloat-specialize.h softfloat-macros.h
softfloat.o: softfloat.cc softfloat.h ../../config.h \
 softfloat-round-pack.h softfloat-macros.h softfloat-specialize.h
softfloat16.o: softfloat16.cc softfloat.h ../../config.h \
 softfloat-round-pack.h softfloat-specialize.h softfloat-macros.h
softfloatx80.o: softfloatx80.cc softfloatx80.h softfloat.h ../../config.h \
 softfloat-specialize.h softfloat-round-pack.h softfloat-macros.h
